今天再把激活層、平展層跟隱藏層講完,要使用的layer就講差不多囉!
激活層(activate layer)的原理在於,讓網路中傳遞的值,不再僅是線性輸出,而是仿造神經元構造的非線性輸出:
(a)Sigmoid(b)Tanh(c)ReLU(d)Leaky ReLU
每種激活函數有各自的設計原理,sigmoid適合放在尾部地方做二元分類,relu則現在是大部分網路使用,插入在卷積的後面,但模型的最後端不會放。我們這次搭DQN會用到relu,作用是只要輸入有負值的的話都會歸零,而正值則保持正常輸出。keras.layers.Activation('relu',alpha=0.0)
卷積層通常是用在視覺上的應用,但如果是數值化的輸入,我們會使用隱藏層。可以想像房價預測、社交網路分析、犯罪預測這種,輸入有非常多你可想像的資料屬性,例如性別、職業...對輸出定義好結果,例如房價是否會上漲、此用戶是否為潛在消費者,true of false...卷積層輸入是圖像,但我們為了把它轉進隱藏層,會先用flatten layer把它展開層一排節點。keras.layers.Flatten()
沒什麼好介紹的,就展開而已XD
剛剛提過,隱藏層是基本的節點計算,你可以單純想像是二元一次方程式,包括權重(w)跟偏差值(bias)。每個節點皆會跟前後一層的所有節點相交,龐大的節點群(參數)構成複雜的網路結構,所以都稱類神經網路為黑盒子,是因為複雜跟龐大的參數群很難有明確的數學解釋性。keras.layers.Dense(units, use_bias=True)
剛剛講輸出true or false的例子,只是個簡單sample,除了二元分類,也可以用在多元分類哦!如果讀者對AI都沒接觸過,但堅持到了這邊,恭喜你已經快通過AI入門拉~明天就來建整個DQN的model吧!
1.激活函數介紹 sigmoid vs softmax https://bre.is/EY7VsoSM